function equalizedImage = histogramEqualization(imagePath)
%   从给定路径读取图像，对其应用直方图均衡化，并返回均衡化后的图像。

img = imread(imagePath);% 读取图像
histogramCounts = imhist(img, 256);% 计算直方图

% 计算累积分布函数 (CDF)
cumulativeSum = cumsum(histogramCounts);
numPixels = numel(img);
cdf = cumulativeSum / numPixels;

% 直方图均衡化
[row, col] = size(img);
equalizedImage = zeros(size(img)); % 初始化均衡化后的图像数组
for r = 1:row
    for c = 1:col
        % 对每个像素值应用插值查找
        equalizedImage(r, c) = interp1(0:255, cdf, double(img(r, c)), 'linear', 'extrap');
    end
end

% 返回均衡化后的图像
end
